/*
 * PilasListasColas.h
 *
 *  Created on: 16/10/2011
 *      Author: root
 */
#include <stdint.h>
#include "LeerYGrabarSector.h"


#ifndef PILASLISTASCOLAS_H_
#define PILASLISTASCOLAS_H_

/*---------------------------------*/
/*NODO COLA*/
typedef struct nodoCola{
	int32_t peticion;
	char tipoPedido;
	char infoSector[512];
	int32_t socket;
	int32_t movimiento;
	struct nodoCola *ptrSgte;
}__attribute__((packed))nodoCola_t;
typedef nodoCola_t *ptrNodoCola;
/*---------------------------------*/
/*NODO LISTA*/
typedef struct nodoLista{
	int peticion;
	char tipoPedido;
	char infoSector[512];
	int32_t socket;
	int32_t movimiento;
	struct nodoLista *ptrSgte;
}__attribute__((packed))nodoLista_t;
typedef nodoLista_t *ptrNodoLista;
/*---------------------------------*/
/*NODO PILA*/
typedef struct nodoPila{
	int peticion;
	char tipoPedido;
	char infoSector[512];
	struct nodoPila *ptrSgte;
}__attribute__((packed))nodoPila_t;
typedef nodoPila_t *ptrNodoPila;
/*---------------------------------*/


/*---------------------------------------------------------------*/
/*FUNCIONES PARA COLAS*/
void agregar (ptrNodoCola *ColaFte,ptrNodoCola *ColaFin,sector_t sector);
sector_t suprimir (ptrNodoCola *ColaFte, ptrNodoCola *ColaFin);
int32_t estaVaciaCola (ptrNodoCola Cola);
void mostrarCola (ptrNodoCola ColaFte);
/*----------------------------------------------------------------*/
/*FUNCIONES PARA LISTAS*/
void insertarNodo (ptrNodoLista *lista, sector_t sector);
sector_t suprimirNodo (ptrNodoLista *Lista, sector_t);
int32_t estaVaciaLista (ptrNodoLista Lista);
void mostrarLista (ptrNodoLista Lista);
void insertarNodoBajando(ptrNodoLista *Lista,sector_t);
void insertarNodoSubiendo(ptrNodoLista *Lista,sector_t);
sector_t suprimirPrimerNodo (ptrNodoLista *Lista);

/*----------------------------------------------------------------*/
/*FUNCIONES PARA PILAS*/
void meter (ptrNodoPila *Pila, int32_t info);
int32_t sacar (ptrNodoPila *Pila);
int32_t estaVaciaPila (ptrNodoPila Lista);
void mostrarPila (ptrNodoPila Pila);
/*----------------------------------------------------------------*/

#endif /* PILASLISTASCOLAS_H_ */
